Running or developing software on computing systems, and maintaining or modifying databases, especially with respect to large-scale computing systems such as servers, often requires running multiple processes, some of which may be run simultaneously and others of which may be run sequentially. Each of these processes typically involves one or more tasks, and each task typically involves one or more subtasks. If one or more of these tasks or subtasks fails, the operation of the computing system may be seriously adversely affected and it is often very difficult and time-consuming to identify the software component or subcomponent that caused the problem, or to determine which person or team should be called to remedy the problem.